package cn.stylefeng.guns.sys.modular.system.model.params;

import lombok.Data;
import cn.stylefeng.roses.kernel.model.validator.BaseValidatingParam;
import java.util.Date;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 出勤_月度员工档案信息表
 * </p>
 *
 * @author wjk
 * @since 2021-09-14
 */
@Data
public class AttendEmployeeMonthParam implements Serializable, BaseValidatingParam {

    private static final long serialVersionUID = 1L;


    /**
     * id(主键)
     */
    private Long id;

    /**
     * 考勤的月份(YYYYMM)
     */
    private String attendMonth;

    /**
     * 同步的月份(YYYYMM)
     */
    private String synchronousMonth;

    /**
     * 员工身份表id
     */
    private Long btyArchicesId;

    /**
     * 店名
     */
    private String dm;

    /**
     * 姓名
     */
    private String xm;

    /**
     * 身份证
     */
    private String sfz;

    /**
     * 职位
     */
    private String zw;

    /**
     * 日期
     */
    private Date rq;

    /**
     * 联系方式
     */
    private String tel;

    /**
     * 银行卡号
     */
    private String yhk;

    /**
     * 备注
     */
    private String bz;

    /**
     * 区域
     */
    private String qy;

    /**
     * 二级区域
     */
    private String eqy;

    /**
     * 状态（0正常，1离职
     */
    private Integer zt;

    /**
     * 工资
     */
    private BigDecimal gz;

    /**
     * 工资额外
     */
    private BigDecimal gw;

    /**
     * openid
     */
    private String openid;

    /**
     * 银行
     */
    private String bank;

    /**
     * 行号
     */
    private String hh;

    /**
     * 卡片名称
     */
    private String cardName;

    /**
     * 银行卡状态
     */
    private Integer yhkStatus;

    /**
     * 出勤天数（两位整数，两位小数）
     */
    private Float attendanceDays;

    /**
     * 公休天数（两位整数，两位小数）
     */
    private Float holidayDays;

    /**
     * 应发工资=（（岗位工资+基本工资）/本月总天数）*（出勤天数+公休）
     */
    private BigDecimal shouldPay;

    /**
     * 是否发工资（0发，1不发）
     */
    private Integer payWage;

    /**
     * 店长备注
     */
    private String managerNote;

    /**
     * 状态（0同步过来的，1新增未同步到员工表的，2.新提交督导审核的，3.督导审核过的，4.督导驳回的，5.督导审核通过之后已经同步回员工表的）
     */
    private Integer synchronousStatus;

    /**
     * 在职状态修改(0,未被修改，1被修改为离职，或者修改调店信息，2.提交到到督导审核，3.督导审核过的，4.督导驳回的，5.督导审核通过之后已经同步回员工表的)
     */
    private Integer ztUpdate;

    /**
     * 督导审核状态表_id
     */
    private Long attendAuditId;

    /**
     * 状态（0正常，1离职）
     */
    private Integer ztNew;

    /**
     * 调店之后店名
     */
    private String dmOld;

    /**
     * 编号
     */
    private String bh;

    /**
     * 判断是不是人事表同步过来的的新员工(gz，gw工资为0的判断是新员工),是新员工的加状态“1”
     */
    private String btyArchicesNewEmp;

    /**
     * 判断是不是钉钉表同步过劳的新员工，若是则加状态"T"
     */
    private String dingdingNewEmp;

    /**
     * 职位修改前的职位，只记录一次
     */
    private String zwOld;

    @Override
    public String checkParam() {
        return null;
    }

    @Override
    public String toString() {
        return "AttendEmployeeMonthParam{" +
                "id=" + id +
                ", attendMonth='" + attendMonth + '\'' +
                ", synchronousMonth='" + synchronousMonth + '\'' +
                ", btyArchicesId=" + btyArchicesId +
                ", dm='" + dm + '\'' +
                ", xm='" + xm + '\'' +
                ", sfz='" + sfz + '\'' +
                ", zw='" + zw + '\'' +
                ", rq=" + rq +
                ", tel='" + tel + '\'' +
                ", yhk='" + yhk + '\'' +
                ", bz='" + bz + '\'' +
                ", qy='" + qy + '\'' +
                ", eqy='" + eqy + '\'' +
                ", zt=" + zt +
                ", gz=" + gz +
                ", gw=" + gw +
                ", openid='" + openid + '\'' +
                ", bank='" + bank + '\'' +
                ", hh='" + hh + '\'' +
                ", cardName='" + cardName + '\'' +
                ", yhkStatus=" + yhkStatus +
                ", attendanceDays=" + attendanceDays +
                ", holidayDays=" + holidayDays +
                ", shouldPay=" + shouldPay +
                ", payWage=" + payWage +
                ", managerNote='" + managerNote + '\'' +
                ", synchronousStatus=" + synchronousStatus +
                ", ztUpdate=" + ztUpdate +
                ", attendAuditId=" + attendAuditId +
                ", ztNew=" + ztNew +
                ", dmOld='" + dmOld + '\'' +
                ", bh='" + bh + '\'' +
                ", btyArchicesNewEmp='" + btyArchicesNewEmp + '\'' +
                ", dingdingNewEmp='" + dingdingNewEmp + '\'' +
                ", zwOld='" + zwOld + '\'' +
                '}';
    }
}
